package cn.akwangl.common.uoload.utils;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 文件上传工具包
 */
public class FileUtils {

    /**
     * 文件夹格式：yyyy-MM-dd
     */
    public static final String FOLDER_FORMAT = "yyyy-MM-dd";

    /**
     * @param pattern
     * @return 获取根据模板获取时间字符串
     */
    public static String getDateStr(String pattern) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
        return simpleDateFormat.format(new Date());
    }

    /**
     * @param file     文件
     * @param path     文件存放路径
     * @param fileName 源文件名
     * @return
     */
    public static boolean uploadLocal(MultipartFile file, String path, String fileName) {
        // 实际的路径
        String realPath = path + "/" + fileName;
        // 构造出一个文件
        File dest = new File(realPath);
        //判断文件父目录是否存在
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdirs();
        }
        //保存文件
        try {
            file.transferTo(dest);
            return true;
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
    }


    /**
     * 文件删除
     * @param file
     * @return 删除成功：true 删除失败：false
     * @throws Exception 文件不存在
     */
    public static boolean deleteFile(File file) throws Exception {
        // 如果文件不存在直接抛出异常
        if (!file.exists()) {
            throw new FileNotFoundException("文件不存在！");
        }
        // 是否是一个标准文件
        if (!file.isFile()) {
            throw new FileNotFoundException("文件不存在！");
        }
        return file.delete();
    }

}
